package com.zrc.japktool.util;

import com.zrc.japktool.ui.CustomDialogController;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.io.IOException;
import java.util.function.Consumer;

public class DialogUtil {
    // 信息弹窗
    public static void showInfoDialog(Stage parent, String tiile, String content) {
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.initOwner(parent);
        alert.setTitle("JApkTool");
        alert.setHeaderText(tiile);
        alert.setContentText(content);
        alert.showAndWait();
    }

    // 确认弹窗
    private void showConfirmDialog(Stage parent, String tiile, String content, Consumer action) {
        Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
        alert.initOwner(parent);
        alert.setTitle("JApkTool");
        alert.setHeaderText(tiile);
        alert.setContentText(content);
        alert.showAndWait().ifPresent(action);
//        alert.showAndWait().ifPresent(response -> {
//            if (response == ButtonType.OK) {
//                System.out.println("用户点击了确定");
//            } else {
//                System.out.println("用户点击了取消");
//            }
//        });
    }

    // 自定义内容弹窗
//    private void showCustomDialog(Stage parent) {
//        // 创建自定义对话框
//        Dialog<String> dialog = new Dialog<>();
//        dialog.initOwner(parent);
//        dialog.setTitle("JApkTool");
//        dialog.setHeaderText("请输入您的信息");
//
//        // 设置对话框按钮
//        dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
//
//        // 自定义内容 - 添加文本输入框
//        TextField textField = new TextField();
//        textField.setPromptText("请输入内容");
//        VBox dialogContent = new VBox(10);
//        dialogContent.getChildren().addAll(new Label("输入信息:"), textField);
//        dialog.getDialogPane().setContent(dialogContent);
//
//        // 设置结果转换器
//        dialog.setResultConverter(button -> {
//            if (button == ButtonType.OK) {
//                return textField.getText();
//            }
//            return null;
//        });
//
//        // 处理结果
//        dialog.showAndWait().ifPresent(result -> {
//            System.out.println("用户输入: " + result);
//        });
//    }

    public static void showCustomDialog(Stage parent) {
        try {
            // 创建自定义对话框
            Dialog<String> dialog = new Dialog<>();
            dialog.initOwner(parent);
            dialog.setTitle("JApkTool");
            dialog.setHeaderText("请输入您的信息");

            // 设置对话框按钮
            dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
            FXMLLoader loader = new FXMLLoader(DialogUtil.class.getResource("/com/zrc/japktool/CustomDialog.fxml"));
            Parent root = loader.load();

            // 获取控制器实例
            CustomDialogController controller = loader.getController();
            controller.setPromptText("请输入内容");

            // 设置对话框内容
            dialog.getDialogPane().setContent(root);

            // 设置结果转换器
            dialog.setResultConverter(button -> {
                if (button == ButtonType.OK) {
                    return controller.getInputText();
                }
                return null;
            });

            // 处理结果
            dialog.showAndWait().ifPresent(result -> {
                System.out.println("用户输入: " + result);
            });

        } catch (IOException e) {
            e.printStackTrace();
            // 更详细的错误信息，帮助定位问题
            System.err.println("无法加载FXML文件: " + e.getMessage());
            System.err.println("资源路径是否正确? 检查CustomDialog.fxml是否存在");
        }
    }
}
